Twitter API v2でツイートを投稿する
無料プランの話
ローカルのpythonスクリから投稿したい
pythonのtweepyライブラリを使う(tweepyをインストールする等の話はしません) windows
まずはKeyやTokenの入手
0 (開始時にuse caseを250文字以上で書かされるようになってる)
2 デフォでprojectとappがある(無料プランだとこれしか使えない)ので、それを開く
User authentication settings から設定を行う
callback urlなどの指定が必須だが、テキトーでいい
自分は https://scrapbox.io/sta/ とかにした
3 client key と secret が出るのでメモする が、これは今回は使わない
4 access token and secret も regenerate してメモする
5 consumer key の key と secret も regenerate してメモする
https://gyazo.com/a9045ce2435632b699024ec5154224b9
これでいうと上段のconsumer keysと下段のoauth 2.0 client id and client secretの2つ(値としては計4つ)が要る
Pythonスクリプトまわりの話に入る
余談(読み飛ばし可)
最初はChatGPT.iconにつくらせたが、v2の知識がなくv1.1のコードしか出さないので役に立たない
v2のコードはググって調べて書いた
Client.create_tweet(*, direct_message_deep_link=None, for_super_followers_only=None, place_id=None, media_ids=None, media_tagged_user_ids=None, poll_duration_minutes=None, poll_options=None, quote_tweet_id=None, exclude_reply_user_ids=None, in_reply_to_tweet_id=None, reply_settings=None, text=None, user_auth=True) が、ブログ記事も多数ヒットする
スクリプトの解説に戻る
key直書きは怖いので、環境変数から読み込むようにする
これは環境変数にkeyを設定するファイル。値はメモしたやつを書く。
code:twiter_token.bat
@echo off
set TWITTER_CONSUMER_KEY=
set TWITTER_CONSUMER_SECRET=
set TWITTER_ACCESS_TOKEN=
set TWITTER_ACCESS_TOKEN_SECRET=
GitHubにpushとかする場合は、このファイルと設定の追加も忘れずに。
(pushとかしないなら別にいらない)
code:.gitignore
twitter_token.bat
Pythonコード
code:post.py
import os
import tweepy
def post_tweet(tweet):
# twitter_token.bat をつくって実行して埋めろ
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.Client(
bearer_token=None,
consumer_key=consumer_key,
consumer_secret=consumer_secret,
access_token=access_token,
access_token_secret=access_token_secret,
)
api.create_tweet(text=tweet)
tweet = """pythonからツイートするテスト
できてる?
"""
post_tweet(tweet)
実行
code:terminal
$ twitter_token.bat
$ python post.py
https://gyazo.com/d29b893281214f7208c588a8de316b7f